package com.xinruke.hostels.reservation.interfaces.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author GuoZheng
 * @ClassName MeetingSubmitInfoDto
 * @date：2019/6/19
 * @version: V1.0.0
 * @description：
 */
@ApiModel(value = "会议询价提交DTO")
@Data
public class MeetingInquerySubmitInfoDto {


    /**
     * 预订人姓名
     */

    @ApiModelProperty(value = "预订人姓名", required = true)
    @NotBlank(message = "预订人姓名不能为空")
    private String yudingrenxingming;

    /**
     * 预订人电话
     */
    @ApiModelProperty(value = "预订人电话", required = true)
    @NotBlank(message = "预订人电话不能为空")
    private String yudingrendianhua;

    @ApiModelProperty("会议需求标识")
    private Byte huiyixuqiubiaoshi;

    @ApiModelProperty(value = "主办城市编码")
    private String zhubanchengshi;


    @ApiModelProperty(value = "主办单位", required = true)
    @NotBlank(message = "主办单位不能为空")
    private String zhubandanwei;

    /**
     * 会议级别：1一类会议；2二类会议；3三类会议；4四类会议
     */
    @ApiModelProperty(value = "会议级别：字典编码：yd.huiyixuqiubiaoshi", required = true)
    @NotNull(message = "会议级别：不能为空")
    private Byte huiyijibie;


    /**
     * 开始时间：格式YYYY-MM-DD HH:MM精确到分
     */
    @ApiModelProperty(value = "开始时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "开始时间不能为空")
    private Date kaishishijian;

    /**
     * 结束时间：格式YYYY-MM-DD HH:MM精确到分
     */
    @ApiModelProperty(value = "结束时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "结束时间不能为空")
    private Date jieshushijian;

    /**
     * 会务组入住时间
     */
    @ApiModelProperty(value = "会务组入住时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "会务组入住时间不能为空")
    private Date huiwuzuruzhushijian;

    /**
     * 会议类型：1会议；2写材料；3评审；4培训；5专项；6其他
     */
    @ApiModelProperty(value = "会议类型 字典编码：yd.huiyileixing", required = true)
    @NotNull(message = "会议类型不能为空")
    private Byte huiyileixing;

    /**
     * 参会人数
     */
    @ApiModelProperty(value = "参会人数", required = true)
    @NotNull(message = "参会人数不能为空")
    private Integer canhuirenshu;

    /**
     * 会议预算
     */
    @ApiModelProperty(value = "会议预算", required = true)
    @NotNull(message = "会议预算不能为空")
    private BigDecimal huiyiyusuan;

    @ApiModelProperty(value = "实际支出")
    private BigDecimal shijizhichu;

    /**
     * 单人间
     */
    @ApiModelProperty(value = "单人间")
    private Integer danrenjian;

    /**
     * 双人间
     */
    @ApiModelProperty(value = "双人间")
    private Integer shuangrenjian;

    /**
     * 多人间
     */
    @ApiModelProperty(value = "多人间")
    private Integer duorenjian;

    /**
     * 套间
     */
    @ApiModelProperty(value = "套间")
    private Integer taojian;

    /**
     * 客房备注
     */
    @ApiModelProperty(value = "客房备注")
    private String kefangbeizhu;

    /**
     * 小会议室
     */
    @ApiModelProperty(value = "小会议室")
    private Integer xiaohuiyishi;

    /**
     * 大会议室
     */
    @ApiModelProperty("大会议室")
    private Integer dahuiyishi;

    /**
     * 中会议室
     */
    @ApiModelProperty("中会议室")
    private Integer zhonghuiyishi;

    /**
     * 会场备注
     */
    @ApiModelProperty("会场备注")
    private String huichangbeizhu;

    /**
     * 就餐人数
     */
    @ApiModelProperty("就餐人数")
    private Integer jiucanrenshu;

    /**
     * 就餐形式
     */
    @ApiModelProperty("就餐形式 字典分组：")
    private String jiucanxingshi;

    /**
     * 就餐标价
     */
    @ApiModelProperty("就餐标价")
    private BigDecimal jiucanbiaojia;

    /**
     * 就餐备注
     */
    @ApiModelProperty("就餐备注")
    private String jiucanbeizhu;

    /**
     * 小车
     */
    @ApiModelProperty("小车")
    private Integer xiaoche;

    /**
     * 大车
     */
    @ApiModelProperty("大车")
    private Integer dache;

    /**
     * 车位备注
     */
    @ApiModelProperty("车位备注")
    private String cheweibeizhu;

    /**
     * 填报时间
     */
    @ApiModelProperty("填报时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date tianbaoshijian;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String beizhu;

    @ApiModelProperty(value = "询价酒店id", required = true)
    @NotEmpty(message = "询价酒店id不能为空")
    private List<Integer> hotelIdList;
}
